package com.sss.common.ApiDoc;

import com.power.common.util.DateTimeUtil;
import com.power.doc.builder.HtmlApiDocBuilder;
import com.power.doc.constants.DocGlobalConstants;
import com.power.doc.model.ApiConfig;
import com.power.doc.model.CustomRespField;
import com.power.doc.model.SourceCodePath;
import org.junit.Test;

/**
 *
 * @author SSS
 * @date 2019-12-25 14:30
 **/
public class ApiDocGenerate {

    @Test
    public void contextLoads() {
        ApiConfig config = new ApiConfig();
        config.setServerUrl("http://localhost:8080");
        //true会严格要求注释，推荐设置true
        config.setStrict(true);
        //true会将文档合并导出到一个markdown
        config.setAllInOne(true);
        //生成html时加密文档名不暴露controller的名称
        config.setMd5EncryptedHtmlName(true);

        //指定文档输出路径
        //@since 1.7 版本开始，选择生成静态html doc文档可使用该路径：DocGlobalConstants.HTML_DOC_OUT_PATH;
       // config.setOutPath(DocGlobalConstants.HTML_DOC_OUT_PATH);
         config.setOutPath("E:\\MyGithub\\workdemo\\sss-common\\src\\main\\resources\\static\\doc");
        // @since 1.2,如果不配置该选项，则默认匹配全部的controller,
        // 如果需要配置有多个controller可以使用逗号隔开
//        config.setPackageFilters("com.power.doc.controller");
        config.setCustomResponseFields(
                CustomRespField.field().setName("success").setDesc("成功返回true,失败返回false"),
                CustomRespField.field().setName("result").setDesc("接口响应数据")
//                CustomRespField.field().setName("message").setDesc("接口响应信息"),
//                CustomRespField.field().setName("data").setDesc("接口响应数据"),
//                CustomRespField.field().setName("code").setValue("00000").setDesc("响应代码")
        );
       // config.setSourceCodePaths( SourceCodePath.path().setPath("E:\\MyGithub\\workdemo\\sss-common\\src\\main\\java"));
        long start = System.currentTimeMillis();
        //获取接口数据后自行处理
        HtmlApiDocBuilder.builderControllersApi(config);
        //AdocDocBuilder.builderControllersApi(config);
        //   ApiDocBuilder.builderControllersApi(config);
        //List<ApiDoc> docList = ApiDocBuilder.listOfApiData(config);
        long end = System.currentTimeMillis();
        DateTimeUtil.printRunTime(end, start);
    }
}
